ELB(Elastic Load Balancing)を調べて使ってみた。
本日はAWSのELB(Elastic Load Balancing)について整理し、その中のALBを実際に使ってみてALBが実際に起動しているのか確認もしてみましょう。
アジェンダ
- ELB(Elastic Load Balancing)とは?
- ELB(Elastic Load Balancing)の4種類
- ALBを使ってみた
- まとめ
ELB(Elastic Load Balancing)とは?
ELB(Elastic Load Balancing)
高拡張性、高可用性の完全管理型サービスで、ロードバランシングは名前の通りロード(=負荷)をバランシングするサービスを言います。 正確にはトラフィックを複数のターゲットに自動的に分散する機能です。 ここで複数のターゲットはAmazon EC2 インスタンス、コンテナ、IP アドレス、Lambda 関数、仮想アプライアンスなどがあります。
ELBの長所
- 高可用性
- 多数のAZに配布したEC2インスタンスなどにトラフィックを分散するので、一つのAZがダウンしてもユーザーのアプリケーションは問題なく使える。
- 統合性
- ELBはいろんなAWSサービスと一緒に使用できる。
- Auto Scaling:拡張性管理及びワークロード分散業務を効率的に可能。
- Route 53:一緒に使うことでDNS失敗に対応できる。
- など、、
- ELBはいろんなAWSサービスと一緒に使用できる。
- 安全性
- 統合認証管理、SSL復号化、ポートフォワーディングなど多数のセキュリティ機能を提供。
- ELB用セキュリティグループを生成して流入·流出するトラフィックを効果的にコントロール可能。
- 安価
- 安価でコスト効率的。 ロードバランシング作業を自動化することで多くのコストを削減し、管理者の時間と労力も大きく減らせる。
ELBの用語
- リスナー
- リスナーは設定したプロトコルとポートを使用して接続リクエストをチェックするプロセス。
- 最小1個のリスナーが必要になり、最大10個のリスナーまで設定できる。
- ターゲットとターゲットグループ
- ターゲット:トラフィックを分散するところを言うこと。
- ターゲットはAmazon EC2 インスタンス、コンテナ、IP アドレス、Lambda 関数、仮想アプライアンスなどがある。
- ターゲットグループ:トラフィックを分散する複数のターゲットを含んでグループ化したこと。
- ターゲット:トラフィックを分散するところを言うこと。
- ルール
- 定義したルールは、ロードバランサーが 1 つ以上のターゲットグループ内のターゲットにリクエストをルーティングする方法を決定する。
- 各ルールごと優先度·1 つ以上のアクション· 1 つ以上の条件で構成される。
- 各リスナーにはデフォルトのルールがあり、追加でルールを定義できる。
- ヘルスチェック
- ターゲットとターゲットグループが問題なく起動できるように、定義された周期別にターゲットとターゲットグループの状態を確認する動作。
ALBを使ってみた
ELBの中でALB(Application Load Balancer)を実際に使ってみたいと思います。 ALBを使うためには複数のターゲットが必要になるので、ここではAmazon EC2 インスタンスを二つを立て、そこにトラフィックを分散します。
やってみる構成図
VPC, EC2の構築
まず、ALBを使用するためにはターゲットが必要になるので、ターゲットに使うEC2(及びVPC)を構築します。
作ったEC2
ALBの生成
1. ロードバランサー種類選択 (ALB)
2. ロードバランサー設定
ロードバランサーの名前及びリスナーを設定します。
リスナーは通信する
* ロードバランサーのプロトコル:HTTP
* ロードバランサーのポート:80
で設定します。
ターゲットのEC2があるAZ及びVPCサブネットを設定します。
3. セキュリティグループの設定
既存のセキュリティグループで設定します。
セキュリティグループのインバウンドルールは80が追加されています。
4. ターゲットグループとターゲットの設定
設定したターゲットグループがないなら、新しいターゲットグループを作ります。
ターゲットグループの名前とターゲット種類、プロトコル、ポートを設定します。
ターゲットも追加します。
ロードバランサーの生成が終わったら、問題なく起動できるようにターゲットグループでヘルスチェックができたのか確認します。
ALBの動作確認
実行したALBが動作しているのか確認するためにターゲットグループに含んだ二つのEC2サーバにApacheサーバーを設置した後、トラフィックが上手に分散できる確認してみましょう。 分散を確認するため、二つのサーバのinedx.htmlの内容とイメージの大きさを違くしました。
1目のサーバー
2目のサーバー
ELBのDNS名に接続してみたら、二つのページが交互に表示される結果が出るので、成功的にロードバランシングできることがわかります。
まとめ
ELBを整理し、実際にやってみました。実際に手で動かしてみたら動作原理がよく理解できるようです。 また、同じ画面に見えても、違うサーバーかもしれない点が面白いと思いました。